←Select platform

RecognizeForm(RasterImage,List<IMasterFormsCategory>) Method

Summary
Recognize the unknown form type.

Syntax
C#
C++/CLI
Java
Python
public: 
AutoFormsRecognizeFormResult^ RecognizeForm(  
   RasterImage^ form, 
   List<IMasterFormsCategory^>^ categories 
)  
def RecognizeForm(self,form,categories): 

Parameters

form
Form image.

categories
List of Master Forms categories to use in comparison, pass null or empty to use all Master Forms in the repository.

Return Value

The result of the recognition will be the result of the Master Form with maximum confidence. If the confidence is less than MinimumConfidenceKnownForm it will return null, i.e. the form type is unknown and cannot be recognized.

Remarks

If RecognizeFirstPageOnly is true, the type of the form will be recognized based only on the first page of the form. If it is false the recognition will be done using all form image pages.

The  form should have all form pages if RecognizeFirstPageOnly is set to false.

If all Master Forms have a different first page, then recognizing the form according to its first page will be faster.

The recognition of the form will stop comparing the form with other Master Forms either when the confidence of the recognition result is greater or equal to MinimumConfidenceRecognized or when the Master Forms have all been compared.

The result of the recognition will be the result of the Master Form with maximum confidence. If the confidence is less than MinimumConfidenceKnownForm it will return null, i.e. the form type is unknown and cannot be recognized.

This method is useful when you have unknown forms and you want to recognize the types of these forms to archive, classify, and process.

Example
C#
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.Forms.Common; 
using Leadtools.Forms.Auto; 
using Leadtools.Document; 
using Leadtools.Ocr; 
using Leadtools.Forms.Recognition; 
using Leadtools.Forms.Processing; 
using Leadtools.Barcode; 
 
using Leadtools.Forms; 
 
public void MyProgressEvent(object sender, AutoFormsProgressEventArgs e) 
{ 
   Console.WriteLine("Operation: {0}  {1}%", e.Operation, e.Percentage); 
} 
public void AutoFormRecognitionAndProcessing1() 
{ 
   string root = Path.Combine(LEAD_VARS.ImagesDir, @"Forms\FormsDemo\OCR_Test"); 
   RasterCodecs codecs = new RasterCodecs(); 
   //create repository 
   DiskMasterFormsRepository repository = new DiskMasterFormsRepository(codecs, root); 
 
   using (IOcrEngine ocrEngine = OcrEngineManager.CreateEngine(OcrEngineType.LEAD)) 
   { 
      ocrEngine.Startup(null, null, null, LEAD_VARS.OcrLEADRuntimeDir); 
 
      BarcodeEngine barcodeEngine = new BarcodeEngine(); 
 
      AutoFormsEngine autoEngine = new AutoFormsEngine(repository, ocrEngine, barcodeEngine, 30, 80, true); 
      autoEngine.Progress += MyProgressEvent; 
 
      //Load the first page of the for, 
      RasterImage form = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, @"Forms\Forms to be Recognized\OCR\FCC-107_OCR_Filled.tif"), 
                                     1, CodecsLoadByteOrder.Bgr, 1, 1); 
      //recognize the form 
      AutoFormsRecognizeFormResult result = autoEngine.RecognizeForm(form, null); 
      if (result == null) 
         return; 
      //check if we have all pages 
      if (form.PageCount != result.Properties.Pages) 
      {//load the remaining pages of the form 
         form.AddPages(codecs.Load(FormFileName, 1, CodecsLoadByteOrder.Bgr, 2, -1), 1, -1); 
      } 
      //get form fields 
      FormPages formFields = result.MasterForm.ReadFields(); 
      FormRecognitionAttributes attributes = result.MasterForm.ReadAttributes(); 
      //process form 
      autoEngine.ProcessForm(form, null, null, attributes, formFields); 
   } 
} 
 
static class LEAD_VARS 
{ 
   public const string ImagesDir = @"C:\LEADTOOLS23\Resources\Images"; 
   public const string OcrLEADRuntimeDir = @"C:\LEADTOOLS23\Bin\Common\OcrLEADRuntime"; 
} 
Requirements

Target Platforms

Help Version 23.0.2024.2.29
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2024 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.Forms.Auto Assembly
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.